home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / db3tech.arc / MEMDUMP.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-10-25  |  2.1 KB  |  160 lines

  1. .LFCOND
  2.  
  3. COM    EQU    1
  4. D3    EQU    0
  5. ;
  6. ;*****************************************
  7. CODESEG    SEGMENT    BYTE PUBLIC 'CODE'
  8. ;
  9. ;-----------------------------------------
  10.     ASSUME    CS:CODESEG
  11. MEMDUMP PROC    FAR
  12.     IF    COM
  13.        ORG    100H
  14.     ENDIF
  15. ;
  16. START:    JMP    ENTER
  17. ;
  18. TAB_LOC    EQU    $-CODESEG
  19. ASCII_TAB DB    16 DUP (?)
  20. ;
  21. ENTER:    PUSH    AX
  22.     PUSH    BX
  23.     DEC    BX
  24.     PUSH    CX
  25.     PUSH    DX
  26.     PUSH    DS
  27.     PUSH    SI
  28.     PUSH    DI
  29.     IF    D3
  30.       CALL    CRLF
  31.     ENDIF
  32.     MOV    CX,8
  33. LUP1:    MOV    AX,DS
  34.     MOV    DI,TAB_LOC
  35.     PUSH    CX
  36.     MOV    CX,4
  37.     CALL    HEXPRINT
  38.     MOV    DL,':'
  39.     MOV    AH,2
  40.     INT    21H
  41.     MOV    AX,BX
  42.     MOV    CX,4
  43.     CALL    HEXPRINT
  44.     CALL    SPACES
  45.     CALL    SPACES
  46.     MOV    CX,16
  47. LUP2:    MOV    AH,[BX]
  48.     MOV    CS:[DI],AH
  49.     PUSH    CX
  50.     MOV    CX,2
  51.     CALL    HEXPRINT
  52.     CALL    SPACES
  53.     INC    BX
  54.     INC    DI
  55.     POP    CX
  56.     LOOP    LUP2
  57.     CALL    SPACES
  58.     CALL    SPACES
  59.     CALL    ASC_PRINT
  60.     CALL    CRLF
  61.     POP    CX
  62.     LOOP    LUP1
  63. EXIT:    POP    DI
  64.     POP    SI
  65.         POP    DS
  66.     POP    DX
  67.     POP    CX
  68.     POP    BX
  69.     POP    AX
  70.     IF    COM
  71.       INT    20h
  72.     ELSE
  73.       RET
  74.     ENDIF
  75. MEMDUMP ENDP
  76. ;-------------------------------------
  77. HEXPRINT PROC NEAR
  78. HEXCNVT2:
  79.          ROL    AX,1
  80.     ROL    AX,1
  81.     ROL    AX,1
  82.     ROL    AX,1
  83.     PUSH    AX
  84.     AND    AX,000FH
  85.     ADD    AL,90H
  86.     DAA
  87.     ADC    AL,40H
  88.     DAA
  89.     MOV    AH,0EH
  90.     INT    10H
  91.     POP    AX
  92.     LOOP    HEXCNVT2
  93.     RET
  94. HEXPRINT ENDP
  95. ;--------------------------------------------
  96. SPACES    PROC    NEAR
  97.     PUSH    DX
  98.     PUSH    AX
  99.     MOV    DL,' '
  100.     MOV    AH,2
  101.     INT    21H
  102.     POP    AX
  103.     POP    DX
  104.     RET
  105. SPACES    ENDP
  106. ;--------------------------------------------
  107. CRLF    PROC    NEAR
  108.     PUSH    AX
  109.     PUSH    DX
  110.     MOV    DL,0DH
  111.     MOV    AH,2
  112.     INT    21H
  113.     MOV    DL,0AH
  114.     MOV    AH,2
  115.     INT    21H
  116.     POP    DX
  117.     POP    AX
  118.     RET
  119. CRLF    ENDP
  120. ;---------------------------------------------
  121. ASC_PRINT PROC    NEAR
  122.     PUSH    AX
  123.     PUSH    CX
  124.     PUSH    DX
  125.     PUSH    SI
  126.     PUSH    DI
  127.     MOV    SI,TAB_LOC
  128.     MOV    CX,16
  129. PRINT_CHAR:
  130.     MOV    DL,CS:[SI]
  131.     CMP    DL,255
  132.     JE    PRINT_DOT
  133.     CMP    DL,128
  134.     JB    IS_SPACE
  135.     AND    DL,7FH
  136. IS_SPACE:
  137.     CMP    DL,' '
  138.     JB     PRINT_DOT
  139.     MOV    AH,2
  140.     INT    21H
  141.     INC    SI
  142.     JMP    NEXT
  143. PRINT_DOT:
  144.     MOV    DL,'.'
  145.     MOV    AH,2
  146.     INT    21H
  147.     INC    SI
  148. NEXT:    LOOP    PRINT_CHAR
  149.     POP    DI
  150.     POP    SI
  151.     POP    DX
  152.     POP    CX
  153.     POP    AX
  154.     RET
  155. ASC_PRINT ENDP
  156. ;--------------------------------------------
  157. CODESEG    ENDS
  158. ;***********************************************
  159.     END    START
  160.